41 research outputs found

    Using Modularity Metrics to assist Move Method Refactoring of Large System

    Full text link
    For large software systems, refactoring activities can be a challenging task, since for keeping component complexity under control the overall architecture as well as many details of each component have to be considered. Product metrics are therefore often used to quantify several parameters related to the modularity of a software system. This paper devises an approach for automatically suggesting refactoring opportunities on large software systems. We show that by assessing metrics for all components, move methods refactoring an be suggested in such a way to improve modularity of several components at once, without hindering any other. However, computing metrics for large software systems, comprising thousands of classes or more, can be a time consuming task when performed on a single CPU. For this, we propose a solution that computes metrics by resorting to GPU, hence greatly shortening computation time. Thanks to our approach precise knowledge on several properties of the system can be continuously gathered while the system evolves, hence assisting developers to quickly assess several solutions for reducing modularity issues

    An agent-driven semantical identifier using radial basis neural networks and reinforcement learning

    Full text link
    Due to the huge availability of documents in digital form, and the deception possibility raise bound to the essence of digital documents and the way they are spread, the authorship attribution problem has constantly increased its relevance. Nowadays, authorship attribution,for both information retrieval and analysis, has gained great importance in the context of security, trust and copyright preservation. This work proposes an innovative multi-agent driven machine learning technique that has been developed for authorship attribution. By means of a preprocessing for word-grouping and time-period related analysis of the common lexicon, we determine a bias reference level for the recurrence frequency of the words within analysed texts, and then train a Radial Basis Neural Networks (RBPNN)-based classifier to identify the correct author. The main advantage of the proposed approach lies in the generality of the semantic analysis, which can be applied to different contexts and lexical domains, without requiring any modification. Moreover, the proposed system is able to incorporate an external input, meant to tune the classifier, and then self-adjust by means of continuous learning reinforcement.Comment: Published on: Proceedings of the XV Workshop "Dagli Oggetti agli Agenti" (WOA 2014), Catania, Italy, Sepember. 25-26, 201

    Improving files availability for BitTorrent using a diffusion model

    Full text link
    The BitTorrent mechanism effectively spreads file fragments by copying the rarest fragments first. We propose to apply a mathematical model for the diffusion of fragments on a P2P in order to take into account both the effects of peer distances and the changing availability of peers while time goes on. Moreover, we manage to provide a forecast on the availability of a torrent thanks to a neural network that models the behaviour of peers on the P2P system. The combination of the mathematical model and the neural network provides a solution for choosing file fragments that need to be copied first, in order to ensure their continuous availability, counteracting possible disconnections by some peers

    Is swarm intelligence able to create mazes?

    Get PDF
    In this paper, the idea of applying Computational Intelligence in the process of creation board games, in particular mazes, is presented. For two different algorithms the proposed idea has been examined. The results of the experiments are shown and discussed to present advantages and disadvantages

    An automated classification system for urban areas matching the 'city country fingers' pattern: the cases of Kamakura (Japan) and Acireale (Italy) cities

    Get PDF
    AbstractThe uncontrolled expansion of urban areas is one of the main factors that reduce the liveability of cities. In recent years, to contrast urban sprawl, several nations have promoted policies aimed at developing urban green spaces. The importance of green oases within cities had already been highlighted, in 1977, by the architect Christopher Alexander who had developed a series of patterns including 'City Country Fingers' claiming that city development should consider the prolongation of country land in to the urban area.In several cities, especially in Japan, it is possible to recognize the imprint of urban development based on country fingers. This term refers to extensive urban intersections of agricultural land or wooded hills which, from the peripheral areas, penetrate the city. Inside them, there are urban windows, called city fingers, whose development direction is opposite to those of the country fingers. To recognize and analyze, in an automated way, these particular structures, a Python-based application was created. Starting from the original high-resolution image of Google Earth, a complete analysis was performed, labeling and delimiting urban and vegetational areas and extrapolating the main geometric parameters of the country and city fingers. The finalization of the results obtained was carried out through a classification model whose criteria were based on Alexander's pattern.Thanks to this classification scheme, the distinction between Active Green Areas (country fingers) and Passive Green Areas (gardens and public parks) have been revealed for the analyzed cities. The tests performed showed almost ideal conditions for the city of Kamakura and a limited match for the urban area of Acireale. The proposed method is suitable for fields of application that require a qualitative and quantitative determination of the vegetation cover present within the city, an essential condition for correct territorial planning

    Searching Design Patterns Fast by Using Tree Traversals

    Get PDF
    Large software systems need to be modified to remain useful. Changes can be more easily performed when their design has been carefully documented. This paper presents an approach to quickly find design patterns that have been implemented into a software system. The devised solution greatly reduces the performed checks by organising the search for a design pattern as tree traversals, where candidate classes are carefully positioned into trees. By automatically tagging classes with design pattern roles we make it easier for developers to reason with large software systems. Our approach can provide documentation that lets developers understand the role each class is playing, assess the quality of the code, have assistance for refactoring and enhancing the functionalities of the software system.

    REDUNET: reducing test suites by integrating set cover and network-based optimization

    Get PDF
    Abstract The availability of effective test suites is critical for the development and maintenance of reliable software systems. To increase test effectiveness, software developers tend to employ larger and larger test suites. The recent availability of software tools for automatic test generation makes building large test suites affordable, therefore contributing to accelerating this trend. However, large test suites, though more effective, are resources and time consuming and therefore cannot be executed frequently. Reducing them without decreasing code coverage is a needed compromise between efficiency and effectiveness of the test, hence enabling a more regular check of the software under development. We propose a novel approach, namely REDUNET, to reduce a test suite while keeping the same code coverage. We integrate this approach in a complete framework for the automatic generation of efficient and effective test suites, which includes test suite generation, code coverage analysis, and test suite reduction. Our approach formulates the test suite reduction as a set cover problem and applies integer linear programming and a network-based optimisation, which takes advantage of the properties of the control flow graph. We find the optimal set of test cases that keeps the same code coverage in fractions of seconds on real software projects and test suites generated automatically by Randoop. The results on ten real software systems show that the proposed approach finds the optimal minimisation and achieves up to 90% reduction and more than 50% reduction on all systems under analysis. On the largest project our reduction algorithm performs more than three times faster than both integer linear programming alone and the state-of-the-art heuristic Harrold Gupta Soffa

    Real-Time Cloud-based Game Management System via Cuckoo Search Algorithm

    Get PDF
    This paper analyses the idea of applying Swarm Intelligence in the process of managing the entire 2D board game in a real-time environment. For the proposed solution Game Management System is used as a cloud resource with a dedicated intelligent control agent. The described approach has been analysed on the basis of board games like mazes. The model and the control algorithm of the system is described and examined. The results of the experiments are presented and discussed to show possible advantages and disadvantages of the proposed method.

    Simplified firefly algorithm for 2D image key-points search

    Full text link
    In order to identify an object, human eyes firstly search the field of view for points or areas which have particular properties. These properties are used to recognise an image or an object. Then this process could be taken as a model to develop computer algorithms for images identification. This paper proposes the idea of applying the simplified firefly algorithm to search for key-areas in 2D images. For a set of input test images the proposed version of firefly algorithm has been examined. Research results are presented and discussed to show the efficiency of this evolutionary computation method.Comment: Published version on: 2014 IEEE Symposium on Computational Intelligence for Human-like Intelligenc

    A Software Architecture Assisting Workflow Executions on Cloud Resources

    Get PDF
    An enterprise providing services handled by means of workflows needs to monitor and control their execution, gather usage data, determine priorities, and properly use computing cloud-related resources. This paper proposes a software architecture that connects unaware services to components handling workflow monitoring and management concerns. Moreover, the provided components enhance dependability of services while letting developers focus only on the business logic
    corecore